记得备份!
记得备份!
记得备份!
cp -a /etc/kubernetes/ /etc/kubernetes_backup_`date +%Y%m%d`
看看是否证书过期
find /etc/kubernetes/pki/ -type f -name "*.crt" -print|egrep -v 'ca.crt$'|xargs -L 1 -t -i bash -c 'openssl x509 -noout -text -in {}|grep After'自动更新
todo
手动续期证书
todo
手动重新签发证书(仅当以上操作无效时)
确认版本1.13 1.14有效
1.确认kubeadm-config.yaml内容
apiVersion: kubeadm.k8s.io/v1beta1 |
|---|
apiVersion: kubeadm.k8s.io/v1beta1 |
注意其中kubernetesVersion为当前kubernetes版本,apiServer.certSANs为haproxy地址,controlPlaneEndpoint为haproxy反代apiserver的地址
如果找不到文件可以及时生成
kubeadm config view >/tmp/cluster.yaml
2.备份kubernetes配置目录
cp -a /etc/kubernetes /etc/kubernetes_bak
3.删除已有的客户端证书(注意,ca证书保持不变)
rm -f /etc/kubernetes/pki/apiserver*
rm -f /etc/kubernetes/pki/front-proxy-client.*
rm -f /etc/kubernetes/pki/etcd/healthcheck-client.*
rm -f /etc/kubernetes/pki/etcd/peer.*
rm -f /etc/kubernetes/pki/etcd/server.*
4.重新生成证书
kubeadm init phase certs all --config kubeadm-config.yaml
(日志输出中重用已有CA,签发新的客户端证书)
4.5 确认自己有/etc/kubernetes/ 备份
cd /etc/kubernetes/ && rm -f {admin.conf,controller-manager.conf,kubelet.conf,scheduler.conf}
5.重新生成kubenetes配置文件
kubeadm init phase kubeconfig all --config kubeadm-config.yaml
6.重启apiserver, controller, scheduler, etcd服务
docker ps -a | grep -e apiserver -e controller -e scheduler -e etcd | grep -v pause
docker restart xxx xxx xxx xxx
7.更新kubectl配置文件
cp ~/.kube/config ~/.kube/config_bak
cp /etc/kubernetes/admin.conf ~/.kube/config
8.登录其他机器重复步骤1~7
9.确认集群节点状态
kubectl get nodes
FAQ
kubectl top no报错
error: You must be logged in to the server (Unauthorized)
因为4.5没做